home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / ObjectTcl-1.1 / README < prev    next >
Encoding:
Text File  |  1995-06-30  |  4.7 KB  |  160 lines

  1.             Object Tcl b1.1
  2.             ----------------
  3.  
  4. Introduction
  5. ------------
  6.  
  7. Firstly, thankyou for taking the time to download the Object Tcl extension and
  8. we hope you find it useful. We welcome any comments you may have and can be
  9. contacted at "otcl@x.co.uk".
  10.  
  11. We would like to take this opportunity to draw your attention to the Object Tcl
  12. license in file "LICENSE.TXT". This license is also duplicated in all of the
  13. source files.
  14.  
  15. The Object Tcl home page resides at:
  16.  
  17.         http://www.x.co.uk/devt/ObjectTcl/
  18.  
  19. Building 
  20. --------
  21.  
  22. The distribution comes with an auto configuration file called "configure" that
  23. will generate a Makefile specific for your environment. Within the
  24. distribution top level directory type "./configure".
  25.  
  26. The Makefile generates is suitable for use with tc7.3/tk3.6 and
  27. tcl7.4b3/tk4.0b3.
  28.  
  29. The resulting Makefile has the following targets:
  30.  
  31. libotcl.a:    This is the Object Tcl library that implements the
  32.         Tcl extension package. It is built from all of the source
  33.         files prefixed with "Otcl".
  34.  
  35. otclsh:        This is a version of the Tcl shell that includes the Object
  36.         Tcl extension.
  37.  
  38. owish:        This is a version of the Tk shell that includes th Object
  39.         Tcl extension.
  40.  
  41. otcltest:    This is similar to the otclsh target except it also has the
  42.         C++ test classes built in.
  43.  
  44. cdl:        This is the CDL processor and it is built from all of the
  45.         source files prefixed with "Cdl".
  46.  
  47. test:        This target executes the test script "tscript found in the
  48.         "tests" subdirectory.
  49.  
  50. install:    Install Object Tcl libraries and public header files.
  51.  
  52. clean:        Remove all of the derived object and binary files.
  53.  
  54. distclean:    Cleans the Object Tcl distribution completely including
  55.         Makefile and auto configuration cache files.
  56.  
  57. Environment Variables
  58. ---------------------
  59.  
  60. OTCL_LIBRARY should be set to point to the installed location of
  61. ./library/otcl.tcl or the version kept under this distribution directory.
  62.  
  63. Platform Problems
  64. -----------------
  65.  
  66.     On SCO ODT3.0 using the C++ language system, the compiler
  67.     flag "-dbx" must be used (CXXFLAGS in the Makefile) to stop
  68.     a multiple declaration problem.
  69.  
  70. Test Script
  71. -----------
  72.  
  73. The directory "tests" contains the test script "tscript".
  74.  
  75. The script "tscript" is a Tcl script that performs a sanity check upon the
  76. tsh executable.
  77.  
  78. To execute the test, type "make test" from within the top level Object Tcl
  79. directory or cd to the tests directory and type "../otcltest tscript".
  80.  
  81. The test script automatically compares the actually results aginst the expected
  82. results and reports any differences. If all tests pass then no exceptions
  83. will be reported.
  84.  
  85. Example
  86. -------
  87.  
  88. Example code can be found in the "examples" subdirectory.
  89.  
  90. A simple example exists in examples/Simple and a more complicated
  91. example of Object Tcl-DP is given in examples/TicTacToe.
  92.  
  93. Issues
  94. ------
  95.  
  96. There is a general issue with the Object Tcl system regarding the scoping of
  97. C++ classes, objects and Tcl interpreters.  Obviously C++ classes and objects
  98. have process scope but Object Tcl objects have only interpreter scope.
  99. At the moment, the Object Tcl system will not work correctly with a multiple
  100. interpreter application.
  101.  
  102. Related to the above problem is an issue regarding which interpreter to use
  103. for evaluating method bodies when the method call originated, via dynamic
  104. binding, from C++. The C++ code doesn't understand Tcl and isn't passing around
  105. Tcl interp structures for use in evaluation. The current solution to this 
  106. forces the one interpreter restriction on an application.
  107.  
  108. Known Bugs
  109. ----------
  110.  
  111. o    You can attempt to otclDelete <class> and it core dumps. Not
  112.     investigated yet but I assume you can otclDelete <anything other than
  113.     an object> and it will core.
  114.  
  115. Bug & Suggestion Reporting
  116. --------------------------
  117.  
  118. Please contact us via e-mail @ otcl@x.co.uk with any bugs you find or
  119. suggestions you have.
  120.  
  121. Future
  122. ------
  123.  
  124. The following list outlines the areas we are considering for future
  125. releases (not in any order).
  126.  
  127. o    Addressing mutli-interpreter issues.
  128.  
  129. o    CDL Additions for
  130.     -in, -out and -inout arguments + C++ reference types.
  131.  
  132. o    Run Time Type Information.
  133.  
  134. o    Autoloading of class on first use.
  135.  
  136. o    Debugging support.
  137.  
  138. o    Polymorphic methods based on Object arguments, exported from C++
  139.     possibly a way of typing arguments in Tcl.
  140.  
  141. o    Polymorphic methods based on number of arguments/
  142.     
  143. o    Exporting standard C and C++ functions using CDL.
  144.  
  145. o    Support for enum and #defines from C/C++.
  146.  
  147. o    Operator exporting from C++.
  148.     New "operator" command in CDL.
  149.  
  150. o    Void * as a CDL type.
  151.  
  152. o    Variable arguments passed between C++ and Otcl.
  153.     Could be done with an "argcargv" CDL type command
  154.     that actually transforms to two variables.
  155.  
  156. o    Support for exporting abstract C++ classes to Otcl along
  157.     with Otcl understanding and enforcing the concept of abstract
  158.     classes from C++ an in Otcl.
  159.  
  160.